package longrise.phone.com.bjjt_henan.widget;

import android.app.Dialog;
import android.content.Context;
import android.view.Display;
import android.view.LayoutInflater;
import android.view.View;
import android.view.WindowManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;

import longrise.phone.com.bjjt_henan.R;

/**
 * Created by Administrator on 2016/5/12.
 */
public class HeNanDialog {
    private Context context;
    private Dialog dialog;
    private LinearLayout lLayout_bg;
    private TextView txt_title;
    private TextView txt_msg;
    private EditText edittxt_result;
    private LinearLayout dialog_Group;
    private ImageView dialog_marBottom;
    private Button btn_neg;
    private Button btn_pos;
    private ImageView img_line;
    private Display display;
    private boolean showTitle = false;
    private boolean showMsg = false;
    private boolean showEditText = false;
    private boolean showLayout = false;
    private boolean showPosBtn = false;
    private boolean showNegBtn = false;
    private ImageView iv_mydialog;
    private Integer ResourceId;

    //传一个图片进来
    public HeNanDialog(Context context, int ResourceId) {
        this.context = context;
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        display = windowManager.getDefaultDisplay();
        this.ResourceId = ResourceId;

    }

    //默认的绿色图片
    public HeNanDialog(Context context) {
        this.context = context;
        WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
        display = windowManager.getDefaultDisplay();
    }

    public HeNanDialog builder() {
        // 重写Dialog
        View view = LayoutInflater.from(context).inflate(R.layout.view_dialog, null);

        lLayout_bg = (LinearLayout) view.findViewById(R.id.lLayout_bg);
        txt_title = (TextView) view.findViewById(R.id.txt_title);
        txt_title.setVisibility(View.GONE);
        txt_msg = (TextView) view.findViewById(R.id.txt_msg);
        txt_msg.setVisibility(View.GONE);
        edittxt_result = (EditText) view.findViewById(R.id.edittxt_result);
        edittxt_result.setVisibility(View.GONE);
        dialog_Group = (LinearLayout) view.findViewById(R.id.dialog_Group);
        dialog_Group.setVisibility(View.GONE);
        dialog_marBottom = (ImageView) view.findViewById(R.id.dialog_marBottom);
        btn_neg = (Button) view.findViewById(R.id.btn_neg);
        btn_neg.setVisibility(View.GONE);
        btn_pos = (Button) view.findViewById(R.id.btn_pos);
        btn_pos.setVisibility(View.GONE);
        img_line = (ImageView) view.findViewById(R.id.img_line);
        img_line.setVisibility(View.GONE);
        iv_mydialog = (ImageView) view.findViewById(R.id.iv_mydialog);//显示在顶部的图片
        if (null != ResourceId) {
            iv_mydialog.setImageResource(ResourceId);
        }

        // Dialog
        dialog = new Dialog(context, R.style.AlertDialogStyle);
        dialog.setContentView(view);

        // dialog
        lLayout_bg.setLayoutParams(new FrameLayout.LayoutParams((int) (display.getWidth() * 0.85), LinearLayout.LayoutParams.WRAP_CONTENT));

        return this;
    }

    public HeNanDialog setTitle(String title) {
        showTitle = true;
        if ("".equals(title)) {
            txt_title.setText("提示");
        } else {
            txt_title.setText(title);
        }
        return this;
    }

    public HeNanDialog setEditText(String msg) {
        showEditText = true;
        if ("".equals(msg)) {
            edittxt_result.setHint("请输入文本");
        } else {
            edittxt_result.setText(msg);
        }
        return this;
    }

    public HeNanDialog setMsg(String msg) {
        showMsg = true;
        if ("".equals(msg)) {
            txt_msg.setText("确定删除吗？");
        } else {
            txt_msg.setText(msg);
        }
        return this;
    }

    public HeNanDialog setView(View view) {
        showLayout = true;
        if (view == null) {
            showLayout = false;
        } else
            dialog_Group.addView(view, android.view.ViewGroup.LayoutParams.MATCH_PARENT,
                    android.view.ViewGroup.LayoutParams.MATCH_PARENT);
        return this;
    }

    public HeNanDialog setCancelable(boolean cancel) {
        dialog.setCancelable(cancel);
        return this;
    }

    public HeNanDialog setPositiveButton(String text,
                                         final View.OnClickListener listener) {
        showPosBtn = true;
        if ("".equals(text)) {
            btn_pos.setText("确定");
        } else {
            btn_pos.setText(text);
        }
        if (null != listener) {
            btn_pos.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    listener.onClick(v);
                    dismiss();
                }
            });
        }
        return this;
    }

    public HeNanDialog setNegativeButton(String text,
                                         final View.OnClickListener listener) {
        showNegBtn = true;
        if ("".equals(text)) {
            btn_neg.setText("取消");
        } else {
            btn_neg.setText(text);
        }
        btn_neg.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                listener.onClick(v);
                dismiss();
            }
        });
        return this;
    }

    public void dismiss() {
        if (dialog.isShowing()) {
            dialog.dismiss();
        }
    }

    private void setLayout() {
       /* if (!showTitle) {
            txt_title.setVisibility(View.GONE);
        }*/

       /* if (showTitle) {
            txt_title.setVisibility(View.VISIBLE);
        }*/

        if (showEditText) {
            edittxt_result.setVisibility(View.VISIBLE);
        }

        if (!showEditText) {
            edittxt_result.setVisibility(View.GONE);
        }

        if (showMsg) {
            txt_msg.setVisibility(View.VISIBLE);
        }

        if (!showMsg) {
            txt_msg.setVisibility(View.GONE);
        }

        if (showLayout) {
            dialog_Group.setVisibility(View.VISIBLE);
            dialog_marBottom.setVisibility(View.GONE);
        }

        if (!showPosBtn && !showNegBtn) {
            btn_pos.setVisibility(View.GONE);
            btn_neg.setVisibility(View.GONE);
        }

        if (showPosBtn && showNegBtn) {
            btn_pos.setVisibility(View.VISIBLE);
            btn_neg.setVisibility(View.VISIBLE);
            img_line.setVisibility(View.VISIBLE);
        }

        if (showPosBtn && !showNegBtn) {
            btn_pos.setVisibility(View.VISIBLE);
            //btn_pos.setBackgroundResource(R.drawable.alertdialog_single_selector);
        }

        if (!showPosBtn && showNegBtn) {
            btn_neg.setVisibility(View.VISIBLE);
//            btn_neg.setBackgroundResource(R.drawable.alertdialog_single_selector);
        }
    }

    public void show() {
        setLayout();
        dialog.show();
    }

    public String getResult() {
        return edittxt_result.getText().toString();
    }

    public boolean isShowTitle() {
        return showTitle;
    }

    public void setShowTitle(boolean showTitle) {
        this.showTitle = showTitle;
    }

    public boolean isShowMsg() {
        return showMsg;
    }

    public void setShowMsg(boolean showMsg) {
        this.showMsg = showMsg;
    }

    public boolean isShowEditText() {
        return showEditText;
    }

    public void setShowEditText(boolean showEditText) {
        this.showEditText = showEditText;
    }

    public boolean isShowLayout() {
        return showLayout;
    }

    public void setShowLayout(boolean showLayout) {
        this.showLayout = showLayout;
    }

    public boolean isShowPosBtn() {
        return showPosBtn;
    }

    public void setShowPosBtn(boolean showPosBtn) {
        this.showPosBtn = showPosBtn;
    }

    public boolean isShowNegBtn() {
        return showNegBtn;
    }

    public void setShowNegBtn(boolean showNegBtn) {
        this.showNegBtn = showNegBtn;
    }

}

